package com.zjq.designpatterns.struct.composite.code;/*
 * 版权信息: 北京千⾥马网信科技有限公司</br>
 * Copyright ©2008-2018. All rights reserved. 京ICP备16007318号
 */

import com.sun.org.apache.xml.internal.resolver.Catalog;

/**
 * @author jessie
 * @version 1.0
 * @date 2021/1/23
 */
public class Test {
    public static void main(String[] args) {
        //我们把课程目录和课程都看成CatalogComponet进行处理
        CatalogComponent linuxCourse = new Course("Linux课程", 100);
        CatalogComponent windowCourse = new Course("windows课程", 200);
        //加入level之后
        CatalogComponent javaCourseCatalog = new CourseCatalog("Java课程目录", 2);
        CatalogComponent mmallCourse1 = new Course("java电商1期", 55);
        CatalogComponent mmallCourse2 = new Course("java电商2期", 66);
        CatalogComponent designPattern = new Course("java设计模式", 77);
        javaCourseCatalog.add(mmallCourse1);
        javaCourseCatalog.add(mmallCourse2);
        javaCourseCatalog.add(designPattern);

        //主目录 可以填课程，也可以填目录，把这两个视为一个对象，减少这两个对象在使用时候的差异，这个就是组合模式核心
        CatalogComponent imoocMainCourseCatalog = new CourseCatalog("慕课网课程主目录", 1);
        imoocMainCourseCatalog.add(linuxCourse);
        imoocMainCourseCatalog.add(windowCourse);
        imoocMainCourseCatalog.add(javaCourseCatalog);
        imoocMainCourseCatalog.print();
    }
}
